1. Field of the Invention
The present invention is related to the field of software copy protection and data copy protection.
2. Description of the Related Art
Existing methods for software copy detection usually fall in one of several categories. The first category causes the software to detect some property of the hardware on which it runs, and to stop running if that property is not present. The "hardware property" varies with each method. Some methods check the built-in CPU serial number that is available on high-end workstations and mainframes. Others check the number and type of I/O devices on the computer. Both of these methods make it difficult to move the software from one computer to another. A third method that is currently quite common for high-end software requires the user to attach a hardware key or "dongle" device to one of the computer's ports. This approach works only for expensive software because of the added cost of the dongle, and it becomes cumbersome when several different programs require different and incompatible dongles.
Another category of methods works on a computer network and uses a "license server" program to check on licensing. Each time the protected software is run on a computer, it requests permission from the license server via the network. The license server allows only a limited number of software copies to be running simultaneously on the network. This method is quite flexible, but requires users to be on a common network, does not protect nonnetworked software copies, and is relatively easy to defeat. It is most effective with trusted users who are simply seeking a way to conveniently ensure their adherence to the license agreement.
A third category of software copy-protection methods that often appears in publications, but which is presently not widely used in industry, involves marking each individual software copy of the software by making innocuous and undetectable alterations in the code. It is generally possible to find dozens of minor ways in which a software program can be altered without affecting its function, and each software copy can be "fingerprinted" or "watermarked" with a unique set of such modifications. This makes it possible to determine the original source of an illegitimate software copy. This method could provide strong disincentives for piracy, but it generally requires the threat of legal action against a user to make it effective. Also, this method does not prevent software copies from being made without the original licensee's knowledge (as is common in workplaces and schools, where workers or students often make copies of institutional software for home use.) What is needed is a flexible, relatively inexpensive method for detecting copying of software by any user, licensee, or otherwise, regardless of the computing environment in which the copied software is used.